ActionDispatch::RemoteIp::IpSpoofAttackError at /png/drum

您所在的位置:网站首页 purple music ActionDispatch::RemoteIp::IpSpoofAttackError at /png/drum

ActionDispatch::RemoteIp::IpSpoofAttackError at /png/drum

#ActionDispatch::RemoteIp::IpSpoofAttackError at /png/drum| 来源: 网络整理| 查看: 265

ActionDispatch::RemoteIp::IpSpoofAttackError at /png/drum-kit IP spoofing attack?! HTTP_CLIENT_IP="136.0.186.122" HTTP_X_FORWARDED_FOR="47.241.63.203" Ruby /var/lib/gems/2.7.0/gems/actionpack-5.2.8.1/lib/action_dispatch/middleware/remote_ip.rb: in calculate_ip, line 136 Web GET www.pixelsquid.com/png/drum-kit Jump to: GET POST Cookies ENV Traceback (innermost first) /var/lib/gems/2.7.0/gems/actionpack-5.2.8.1/lib/action_dispatch/middleware/remote_ip.rb: in calculate_ip # right one after the fact. Since we have no idea, if we are concerned # about IP spoofing we need to give up and explode. (If you're not # concerned about IP spoofing you can turn the +ip_spoofing_check+ # option off.) should_check_ip = @check_ip && client_ips.last && forwarded_ips.last if should_check_ip && !forwarded_ips.include?(client_ips.last) # We don't know which came from the proxy, and which from the user raise IpSpoofAttackError, "IP spoofing attack?! " \... "HTTP_CLIENT_IP=#{@req.client_ip.inspect} " \ "HTTP_X_FORWARDED_FOR=#{@req.x_forwarded_for.inspect}" end # We assume these things about the IP headers: # # - X-Forwarded-For will be a list of IPs, one per proxy, or blank /var/lib/gems/2.7.0/gems/actionpack-5.2.8.1/lib/action_dispatch/middleware/remote_ip.rb: in to_s # If every single IP option is in the trusted list, just return REMOTE_ADDR filter_proxies(ips).first || remote_addr end # Memoizes the value returned by #calculate_ip and returns it for # ActionDispatch::Request to use. def to_s @ip ||= calculate_ip... end private def ips_from(header) # :doc: return [] unless header # Split the comma-separated list into an array of strings. /var/lib/gems/2.7.0/gems/actionpack-5.2.8.1/lib/action_dispatch/http/request.rb: in remote_ip def ip @ip ||= super end # Returns the IP address of client as a +String+, # usually set by the RemoteIp middleware. def remote_ip @remote_ip ||= (get_header("action_dispatch.remote_ip") || ip).to_s... end def remote_ip=(remote_ip) set_header "action_dispatch.remote_ip".freeze, remote_ip end ACTION_DISPATCH_REQUEST_ID = "action_dispatch.request_id".freeze # :nodoc: /var/lib/gems/2.7.0/gems/railties-5.2.8.1/lib/rails/rack/logger.rb: in started_request_message end # Started GET "/session/new" for 127.0.0.1 at 2012-09-26 14:51:42 -0700 def started_request_message(request) # :doc: 'Started %s "%s" for %s at %s' % [ request.request_method, request.filtered_path, request.remote_ip,... Time.now.to_default_s ] end def compute_tags(request) # :doc: @taggers.collect do |tag| case tag when Proc /var/lib/gems/2.7.0/gems/railties-5.2.8.1/lib/rails/rack/logger.rb: in block in call_app end private def call_app(request, env) # :doc: instrumenter = ActiveSupport::Notifications.instrumenter instrumenter.start "request.action_dispatch", request: request logger.info { started_request_message(request) }... status, headers, body = @app.call(env) body = ::Rack::BodyProxy.new(body) { finish(request) } [status, headers, body] rescue Exception finish(request) raise ensure /usr/lib/ruby/2.7.0/logger.rb: in add return true end if progname.nil? progname = @progname end if message.nil? if block_given? message = yield... else message = progname progname = @progname end end @logdev.write( format_message(format_severity(severity), Time.now, progname, message)) /usr/lib/ruby/2.7.0/logger.rb: in info # program name (which you can do with #progname= as well). # # === Return # # See #add. # def info(progname = nil, &block) add(INFO, nil, progname, &block)... end # # Log a +WARN+ message. # # See #info for more information. # /var/lib/gems/2.7.0/gems/railties-5.2.8.1/lib/rails/rack/logger.rb: in call_app end private def call_app(request, env) # :doc: instrumenter = ActiveSupport::Notifications.instrumenter instrumenter.start "request.action_dispatch", request: request logger.info { started_request_message(request) }... status, headers, body = @app.call(env) body = ::Rack::BodyProxy.new(body) { finish(request) } [status, headers, body] rescue Exception finish(request) raise ensure /var/lib/gems/2.7.0/gems/railties-5.2.8.1/lib/rails/rack/logger.rb: in block in call @taggers = taggers || [] end def call(env) request = ActionDispatch::Request.new(env) if logger.respond_to?(:tagged) logger.tagged(compute_tags(request)) { call_app(request, env) }... else call_app(request, env) end end private /var/lib/gems/2.7.0/gems/activesupport-5.2.8.1/lib/active_support/tagged_logging.rb: in block in tagged logger.formatter.extend Formatter logger.extend(self) end delegate :push_tags, :pop_tags, :clear_tags!, to: :formatter def tagged(*tags) formatter.tagged(*tags) { yield self }... end def flush clear_tags! super if defined?(super) end end /var/lib/gems/2.7.0/gems/activesupport-5.2.8.1/lib/active_support/tagged_logging.rb: in tagged # This method is invoked when a log event occurs. def call(severity, timestamp, progname, msg) super(severity, timestamp, progname, "#{tags_text}#{msg}") end def tagged(*tags) new_tags = push_tags(*tags) yield self... ensure pop_tags(new_tags.size) end def push_tags(*tags) tags.flatten.reject(&:blank?).tap do |new_tags| current_tags.concat new_tags /var/lib/gems/2.7.0/gems/activesupport-5.2.8.1/lib/active_support/tagged_logging.rb: in tagged logger.formatter.extend Formatter logger.extend(self) end delegate :push_tags, :pop_tags, :clear_tags!, to: :formatter def tagged(*tags) formatter.tagged(*tags) { yield self }... end def flush clear_tags! super if defined?(super) end end /var/lib/gems/2.7.0/gems/railties-5.2.8.1/lib/rails/rack/logger.rb: in call @taggers = taggers || [] end def call(env) request = ActionDispatch::Request.new(env) if logger.respond_to?(:tagged) logger.tagged(compute_tags(request)) { call_app(request, env) }... else call_app(request, env) end end private /var/lib/gems/2.7.0/gems/newrelic_rpm-8.14.0/lib/new_relic/agent/instrumentation/middleware_tracing.rb: in call name: options[:transaction_name], category: category, options: options ) events.notify(:before_call, env) if first_middleware result = target == self ? traced_call(env) : target.call(env)... if first_middleware capture_response_attributes(state, result) events.notify(:after_call, env, result) end result /var/lib/gems/2.7.0/gems/actionpack-5.2.8.1/lib/action_dispatch/middleware/remote_ip.rb: in call # Since the IP address may not be needed, we store the object here # without calculating the IP to keep from slowing down the majority of # requests. For those requests that do need to know the IP, the # GetIp#calculate_ip method will calculate the memoized client IP address. def call(env) req = ActionDispatch::Request.new env req.remote_ip = GetIp.new(req, check_ip, proxies) @app.call(req.env)... end # The GetIp class exists as a way to defer processing of the request data # into an actual IP address. If the ActionDispatch::Request#remote_ip method # is called, this class will calculate the value and then memoize it. class GetIp def initialize(req, check_ip, proxies) /var/lib/gems/2.7.0/gems/newrelic_rpm-8.14.0/lib/new_relic/agent/instrumentation/middleware_tracing.rb: in call name: options[:transaction_name], category: category, options: options ) events.notify(:before_call, env) if first_middleware result = target == self ? traced_call(env) : target.call(env)... if first_middleware capture_response_attributes(state, result) events.notify(:after_call, env, result) end result /var/lib/gems/2.7.0/gems/log_pal-4.2.2/lib/log_pal/middleware/rails/client_user_id.rb: in call class ClientUserID def initialize(app, *args) @app = app end def call(env) Thread.current[:current_request_client_user_id] = env['HTTP_X_CLIENT_USER_ID'] @app.call(env)... ensure Thread.current[:current_request_client_user_id] = nil end end end end /var/lib/gems/2.7.0/gems/newrelic_rpm-8.14.0/lib/new_relic/agent/instrumentation/middleware_tracing.rb: in call name: options[:transaction_name], category: category, options: options ) events.notify(:before_call, env) if first_middleware result = target == self ? traced_call(env) : target.call(env)... if first_middleware capture_response_attributes(state, result) events.notify(:after_call, env, result) end result /var/lib/gems/2.7.0/gems/log_pal-4.2.2/lib/log_pal/middleware/rails/client_external_user_id.rb: in call class ClientExternalUserID def initialize(app, *args) @app = app end def call(env) Thread.current[:current_request_client_external_user_id] = env['HTTP_X_CLIENT_EXTERNAL_USER_ID'] @app.call(env)... ensure Thread.current[:current_request_client_external_user_id] = nil end end end end /var/lib/gems/2.7.0/gems/newrelic_rpm-8.14.0/lib/new_relic/agent/instrumentation/middleware_tracing.rb: in call name: options[:transaction_name], category: category, options: options ) events.notify(:before_call, env) if first_middleware result = target == self ? traced_call(env) : target.call(env)... if first_middleware capture_response_attributes(state, result) events.notify(:after_call, env, result) end result /var/lib/gems/2.7.0/gems/log_pal-4.2.2/lib/log_pal/middleware/rails/client_uid.rb: in call class ClientUID def initialize(app, *args) @app = app end def call(env) Thread.current[:current_request_client_uid] = env['HTTP_X_CLIENT_UID'] @app.call(env)... ensure Thread.current[:current_request_client_uid] = nil end end end end /var/lib/gems/2.7.0/gems/newrelic_rpm-8.14.0/lib/new_relic/agent/instrumentation/middleware_tracing.rb: in call name: options[:transaction_name], category: category, options: options ) events.notify(:before_call, env) if first_middleware result = target == self ? traced_call(env) : target.call(env)... if first_middleware capture_response_attributes(state, result) events.notify(:after_call, env, result) end result /var/lib/gems/2.7.0/gems/log_pal-4.2.2/lib/log_pal/middleware/rails/keymaster_organization_code.rb: in call class KeymasterOrganizationCode def initialize(app, *args) @app = app end def call(env) Thread.current[:logpal_current_organization_code] = env['keymaster_client.organization_code'] @app.call(env)... ensure Thread.current[:logpal_current_organization_code] = nil end end end end end /var/lib/gems/2.7.0/gems/newrelic_rpm-8.14.0/lib/new_relic/agent/instrumentation/middleware_tracing.rb: in call name: options[:transaction_name], category: category, options: options ) events.notify(:before_call, env) if first_middleware result = target == self ? traced_call(env) : target.call(env)... if first_middleware capture_response_attributes(state, result) events.notify(:after_call, env, result) end result /var/lib/gems/2.7.0/gems/log_pal-4.2.2/lib/log_pal/middleware/rails/request_id.rb: in call class RequestId def initialize(app, *args) @app = app end def call(env) Thread.current[:current_request_uuid] = env['action_dispatch.request_id'] @app.call(env)... ensure Thread.current[:current_request_uuid] = nil end end end end end /var/lib/gems/2.7.0/gems/newrelic_rpm-8.14.0/lib/new_relic/agent/instrumentation/middleware_tracing.rb: in call name: options[:transaction_name], category: category, options: options ) events.notify(:before_call, env) if first_middleware result = target == self ? traced_call(env) : target.call(env)... if first_middleware capture_response_attributes(state, result) events.notify(:after_call, env, result) end result /var/lib/gems/2.7.0/gems/request_store-1.5.1/lib/request_store/middleware.rb: in call def initialize(app) @app = app end def call(env) RequestStore.begin! status, headers, body = @app.call(env)... body = Rack::BodyProxy.new(body) do RequestStore.end! RequestStore.clear! end returned = true /var/lib/gems/2.7.0/gems/newrelic_rpm-8.14.0/lib/new_relic/agent/instrumentation/middleware_tracing.rb: in call name: options[:transaction_name], category: category, options: options ) events.notify(:before_call, env) if first_middleware result = target == self ? traced_call(env) : target.call(env)... if first_middleware capture_response_attributes(state, result) events.notify(:after_call, env, result) end result /var/lib/gems/2.7.0/gems/actionpack-5.2.8.1/lib/action_dispatch/middleware/request_id.rb: in call def initialize(app) @app = app end def call(env) req = ActionDispatch::Request.new env req.request_id = make_request_id(req.x_request_id) @app.call(env).tap { |_status, headers, _body| headers[X_REQUEST_ID] = req.request_id }... end private def make_request_id(request_id) if request_id.presence request_id.gsub(/[^\w\-@]/, "".freeze).first(255) else /var/lib/gems/2.7.0/gems/newrelic_rpm-8.14.0/lib/new_relic/agent/instrumentation/middleware_tracing.rb: in call name: options[:transaction_name], category: category, options: options ) events.notify(:before_call, env) if first_middleware result = target == self ? traced_call(env) : target.call(env)... if first_middleware capture_response_attributes(state, result) events.notify(:after_call, env, result) end result /app/lib/request_client_uid.rb: in call def initialize(app, *args) @app = app end def call(env) request = ActionDispatch::Request.new(env) env['HTTP_X_CLIENT_UID'] = request.cookie_jar.signed[:client_uid] @app.call(env)... end end /var/lib/gems/2.7.0/gems/newrelic_rpm-8.14.0/lib/new_relic/agent/instrumentation/middleware_tracing.rb: in call name: options[:transaction_name], category: category, options: options ) events.notify(:before_call, env) if first_middleware result = target == self ? traced_call(env) : target.call(env)... if first_middleware capture_response_attributes(state, result) events.notify(:after_call, env, result) end result /var/lib/gems/2.7.0/gems/rack-2.2.7/lib/rack/method_override.rb: in call method = method_override(env) if HTTP_METHODS.include?(method) env[RACK_METHODOVERRIDE_ORIGINAL_METHOD] = env[REQUEST_METHOD] env[REQUEST_METHOD] = method end end @app.call(env)... end def method_override(env) req = Request.new(env) method = method_override_param(req) || env[HTTP_METHOD_OVERRIDE_HEADER] begin /var/lib/gems/2.7.0/gems/newrelic_rpm-8.14.0/lib/new_relic/agent/instrumentation/middleware_tracing.rb: in call name: options[:transaction_name], category: category, options: options ) events.notify(:before_call, env) if first_middleware result = target == self ? traced_call(env) : target.call(env)... if first_middleware capture_response_attributes(state, result) events.notify(:after_call, env, result) end result /var/lib/gems/2.7.0/gems/rack-2.2.7/lib/rack/runtime.rb: in call @app = app @header_name = HEADER_NAME @header_name += "-#{name}" if name end def call(env) start_time = Utils.clock_time status, headers, body = @app.call(env)... headers = Utils::HeaderHash[headers] request_time = Utils.clock_time - start_time unless headers.key?(@header_name) headers[@header_name] = FORMAT_STRING % request_time end /var/lib/gems/2.7.0/gems/newrelic_rpm-8.14.0/lib/new_relic/agent/instrumentation/middleware_tracing.rb: in call name: options[:transaction_name], category: category, options: options ) events.notify(:before_call, env) if first_middleware result = target == self ? traced_call(env) : target.call(env)... if first_middleware capture_response_attributes(state, result) events.notify(:after_call, env, result) end result /var/lib/gems/2.7.0/gems/activesupport-5.2.8.1/lib/active_support/cache/strategy/local_cache_middleware.rb: in call def new(app) @app = app self end def call(env) LocalCacheRegistry.set_cache_for(local_cache_key, LocalStore.new) response = @app.call(env)... response[2] = ::Rack::BodyProxy.new(response[2]) do LocalCacheRegistry.set_cache_for(local_cache_key, nil) end cleanup_on_body_close = true response rescue Rack::Utils::InvalidParameterError [400, {}, []] /var/lib/gems/2.7.0/gems/newrelic_rpm-8.14.0/lib/new_relic/agent/instrumentation/middleware_tracing.rb: in call name: options[:transaction_name], category: category, options: options ) events.notify(:before_call, env) if first_middleware result = target == self ? traced_call(env) : target.call(env)... if first_middleware capture_response_attributes(state, result) events.notify(:after_call, env, result) end result /var/lib/gems/2.7.0/gems/actionpack-5.2.8.1/lib/action_dispatch/middleware/executor.rb: in call def initialize(app, executor) @app, @executor = app, executor end def call(env) state = @executor.run!(reset: true) begin response = @app.call(env)... returned = response e exception_string = dump_exception(e) env[RACK_ERRORS].puts(exception_string) env[RACK_ERRORS].flush if accepts_html?(env) /var/lib/gems/2.7.0/gems/newrelic_rpm-8.14.0/lib/new_relic/agent/instrumentation/middleware_tracing.rb: in call name: options[:transaction_name], category: category, options: options ) events.notify(:before_call, env) if first_middleware result = target == self ? traced_call(env) : target.call(env)... if first_middleware capture_response_attributes(state, result) events.notify(:after_call, env, result) end result /var/lib/gems/2.7.0/gems/rack-2.2.7/lib/rack/common_logger.rb: in call # will not be logged, so if exception handling middleware are used, # they should be loaded after this middleware. Additionally, because # the logging happens after the request body has been fully sent, any # exceptions raised during the sending of the response body will # cause the request not to be logged. def call(env) began_at = Utils.clock_time status, headers, body = @app.call(env)... headers = Utils::HeaderHash[headers] body = BodyProxy.new(body) { log(env, status, headers, began_at) } [status, headers, body] end private /var/lib/gems/2.7.0/gems/newrelic_rpm-8.14.0/lib/new_relic/agent/instrumentation/middleware_tracing.rb: in call name: options[:transaction_name], category: category, options: options ) events.notify(:before_call, env) if first_middleware result = target == self ? traced_call(env) : target.call(env)... if first_middleware capture_response_attributes(state, result) events.notify(:after_call, env, result) end result /var/lib/gems/2.7.0/gems/rack-2.2.7/lib/rack/chunked.rb: in call end end # If the rack app returns a response that should have a body, # but does not have Content-Length or Transfer-Encoding headers, # modify the response to use chunked Transfer-Encoding. def call(env) status, headers, body = @app.call(env)... headers = HeaderHash[headers] if chunkable_version?(env[SERVER_PROTOCOL]) && !STATUS_WITH_NO_ENTITY_BODY.key?(status.to_i) && !headers[CONTENT_LENGTH] && !headers[TRANSFER_ENCODING] /var/lib/gems/2.7.0/gems/newrelic_rpm-8.14.0/lib/new_relic/agent/instrumentation/middleware_tracing.rb: in call name: options[:transaction_name], category: category, options: options ) events.notify(:before_call, env) if first_middleware result = target == self ? traced_call(env) : target.call(env)... if first_middleware capture_response_attributes(state, result) events.notify(:after_call, env, result) end result /var/lib/gems/2.7.0/gems/rack-2.2.7/lib/rack/content_length.rb: in call include Rack::Utils def initialize(app) @app = app end def call(env) status, headers, body = @app.call(env)... headers = HeaderHash[headers] if !STATUS_WITH_NO_ENTITY_BODY.key?(status.to_i) && !headers[CONTENT_LENGTH] && !headers[TRANSFER_ENCODING] obody = body /var/lib/gems/2.7.0/gems/newrelic_rpm-8.14.0/lib/new_relic/agent/instrumentation/middleware_tracing.rb: in call name: options[:transaction_name], category: category, options: options ) events.notify(:before_call, env) if first_middleware result = target == self ? traced_call(env) : target.call(env)... if first_middleware capture_response_attributes(state, result) events.notify(:after_call, env, result) end result /var/lib/gems/2.7.0/gems/unicorn-6.1.0/lib/unicorn/http_server.rb: in process_client env["rack.early_hints"] = lambda do |headers| e103_response_write(client, headers) end end env["rack.after_reply"] = [] status, headers, body = @app.call(env)... begin return if @request.hijacked? if 100 == status.to_i e100_response_write(client, env) status, headers, body = @app.call(env) /var/lib/gems/2.7.0/gems/unicorn-6.1.0/lib/unicorn/http_server.rb: in worker_loop begin reopen = reopen_worker_logs(worker.nr) if reopen worker.tick = time_now.to_i while sock = ready.shift # Unicorn::Worker#kgio_tryaccept is not like accept(2) at all, # but that will return false if client = sock.kgio_tryaccept process_client(client)... worker.tick = time_now.to_i end break if reopen end # timeout so we can .tick and keep parent from SIGKILL-ing us worker.tick = time_now.to_i /var/lib/gems/2.7.0/gems/unicorn-6.1.0/lib/unicorn/http_server.rb: in spawn_missing_workers worker = Unicorn::Worker.new(worker_nr) before_fork.call(self, worker) pid = @worker_exec ? worker_spawn(worker) : fork unless pid after_fork_internal worker_loop(worker)... exit end @workers[pid] = worker worker.atfork_parent end rescue => e /var/lib/gems/2.7.0/gems/unicorn-6.1.0/lib/unicorn/http_server.rb: in start # This unfortunately has the side effect of clobbering valid PID if # we upgrade and the upgrade breaks during preload_app==true && build_app! self.pid = config[:pid] build_app! if preload_app bind_new_listeners! spawn_missing_workers... self end # replaces current listener set with +listeners+. This will # close the socket if it will not exist in the new listener set def listeners=(listeners) cur_names, dead_names = [], [] /var/lib/gems/2.7.0/gems/unicorn-6.1.0/bin/unicorn: in :unicorn_options => options, :app => app, :daemonize => rackup_opts[:daemonize], }) end Unicorn::Launcher.daemonize!(options) if rackup_opts[:daemonize] Unicorn::HttpServer.new(app, options).start.join... /usr/local/bin/unicorn: in load if str and Gem::Version.correct?(str) version = str ARGV.shift end end if Gem.respond_to?(:activate_bin_path) load Gem.activate_bin_path('unicorn', 'unicorn', version)... else gem "unicorn", version load Gem.bin_path("unicorn", "unicorn", version) end /usr/local/bin/unicorn: in if str and Gem::Version.correct?(str) version = str ARGV.shift end end if Gem.respond_to?(:activate_bin_path) load Gem.activate_bin_path('unicorn', 'unicorn', version)... else gem "unicorn", version load Gem.bin_path("unicorn", "unicorn", version) end Request information GET

No GET data.

POST

No POST data.

COOKIES

No cookie data.

Rack ENV Variable Value HTTP_ACCEPT "*/*" HTTP_CLIENT_IP "136.0.186.122" HTTP_CLOUDFRONT_FORWARDED_PROTO "https" HTTP_CLOUDFRONT_IS_DESKTOP_VIEWER "true" HTTP_CLOUDFRONT_IS_MOBILE_VIEWER "false" HTTP_CLOUDFRONT_IS_SMARTTV_VIEWER "false" HTTP_CLOUDFRONT_IS_TABLET_VIEWER "false" HTTP_CLOUDFRONT_VIEWER_ASN "45102" HTTP_CLOUDFRONT_VIEWER_COUNTRY "SG" HTTP_CONNECTION "close" HTTP_HOST "www.pixelsquid.com" HTTP_REFERER "http://www.baidu.com/" HTTP_USER_AGENT "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729;Media Center PC 6.0; .NET4.0C; .NET4.0E)" HTTP_VERSION "HTTP/1.0" HTTP_VIA "1.1 5ba1fc6b25fbcd91520a550358bd4bac.cloudfront.net (CloudFront)" HTTP_X_AMZ_CF_ID "GugjabgpkWpHUvq6DtoUkEJiJ8gfagJtjsxYtzPtdAaNVSCi97Ls9g==" HTTP_X_CLIENT_UID nil HTTP_X_FORWARDED_FOR "47.241.63.203" HTTP_X_FORWARDED_HOST "www.pixelsquid.com" HTTP_X_FORWARDED_PORT "443" HTTP_X_FORWARDED_PROTO "https" HTTP_X_FORWARDED_SCHEME "https" HTTP_X_ORIGINAL_FORWARDED_FOR "136.0.186.122, 47.241.63.203" HTTP_X_REAL_IP "47.241.63.203" HTTP_X_REQUEST_ID "8d4fe5c94772cd3109f944db578b96d9" HTTP_X_SCHEME "https" ORIGINAL_FULLPATH "/png/drum-kit" ORIGINAL_SCRIPT_NAME "" PATH_INFO "/png/drum-kit" QUERY_STRING "" REMOTE_ADDR "127.0.0.1" REQUEST_METHOD "GET" REQUEST_PATH "/png/drum-kit" REQUEST_URI "/png/drum-kit" ROUTES_10940_SCRIPT_NAME "" SCRIPT_NAME "" SERVER_NAME "www.pixelsquid.com" SERVER_PORT "443" SERVER_PROTOCOL "HTTP/1.0" SERVER_SOFTWARE "Unicorn 6.1.0" action_dispatch.authenticated_encrypted_cookie_salt "authenticated encrypted cookie" action_dispatch.backtrace_cleaner # action_dispatch.content_security_policy nil action_dispatch.content_security_policy_nonce_generator nil action_dispatch.content_security_policy_report_only false action_dispatch.cookies #"GET", "REQUEST_PATH"=>"/png/drum-kit", "PATH_INFO"=>"/png/drum-kit", "REQUEST_URI"=>"/png/drum-kit", "SERVER_PROTOCOL"=>"HTTP/1.0", "HTTP_VERSION"=>"HTTP/1.0", "HTTP_HOST"=>"www.pixelsquid.com", "HTTP_CONNECTION"=>"close", "HTTP_X_REQUEST_ID"=>"8d4fe5c94772cd3109f944db578b96d9", "HTTP_X_REAL_IP"=>"47.241.63.203", "HTTP_X_FORWARDED_FOR"=>"47.241.63.203", "HTTP_X_FORWARDED_HOST"=>"www.pixelsquid.com", "HTTP_X_FORWARDED_PORT"=>"443", "HTTP_X_FORWARDED_PROTO"=>"https", "HTTP_X_FORWARDED_SCHEME"=>"https", "HTTP_X_SCHEME"=>"https", "HTTP_X_ORIGINAL_FORWARDED_FOR"=>"136.0.186.122, 47.241.63.203", "HTTP_USER_AGENT"=>"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729;Media Center PC 6.0; .NET4.0C; .NET4.0E)", "HTTP_X_AMZ_CF_ID"=>"GugjabgpkWpHUvq6DtoUkEJiJ8gfagJtjsxYtzPtdAaNVSCi97Ls9g==", "HTTP_VIA"=>"1.1 5ba1fc6b25fbcd91520a550358bd4bac.cloudfront.net (CloudFront)", "HTTP_ACCEPT"=>"*/*", "HTTP_REFERER"=>"http://www.baidu.com/", "HTTP_CLIENT_IP"=>"136.0.186.122", "HTTP_CLOUDFRONT_IS_MOBILE_VIEWER"=>"false", "HTTP_CLOUDFRONT_IS_TABLET_VIEWER"=>"false", "HTTP_CLOUDFRONT_IS_SMARTTV_VIEWER"=>"false", "HTTP_CLOUDFRONT_IS_DESKTOP_VIEWER"=>"true", "HTTP_CLOUDFRONT_VIEWER_COUNTRY"=>"SG", "HTTP_CLOUDFRONT_FORWARDED_PROTO"=>"https", "HTTP_CLOUDFRONT_VIEWER_ASN"=>"45102", "rack.url_scheme"=>"https", "SERVER_NAME"=>"www.pixelsquid.com", "SERVER_PORT"=>"443", "QUERY_STRING"=>"", "rack.input"=>#, "unicorn.socket"=>#, "rack.hijack"=>#, "rack.errors"=>#, "rack.multiprocess"=>true, "rack.multithread"=>false, "rack.run_once"=>false, "rack.version"=>[1, 2], "rack.hijack?"=>true, "SCRIPT_NAME"=>"", "SERVER_SOFTWARE"=>"Unicorn 6.1.0", "rack.logger"=>#, "rack.after_reply"=>[], "newrelic.transaction_started"=>true, "rack.tempfiles"=>[], "action_dispatch.parameter_filter"=>[:password, :salt, :password, :salt], "action_dispatch.redirect_filter"=>[], "action_dispatch.secret_token"=>nil, "action_dispatch.secret_key_base"=>"babd3712c0fb31c13668982898fb7df5b8515a67c9040b747c9dfdeef3b2a84ec5740430f9835210c32ff8d91909db9773eb4eadb49b5061dfb7e1970b8539c1", "action_dispatch.show_exceptions"=>true, "action_dispatch.show_detailed_exceptions"=>false, "action_dispatch.logger"=>#, "action_dispatch.backtrace_cleaner"=>#, "action_dispatch.key_generator"=>#, "action_dispatch.http_auth_salt"=>"http authentication", "action_dispatch.signed_cookie_salt"=>"signed cookie", "action_dispatch.encrypted_cookie_salt"=>"encrypted cookie", "action_dispatch.encrypted_signed_cookie_salt"=>"signed encrypted cookie", "action_dispatch.authenticated_encrypted_cookie_salt"=>"authenticated encrypted cookie", "action_dispatch.use_authenticated_cookie_encryption"=>false, "action_dispatch.encrypted_cookie_cipher"=>nil, "action_dispatch.signed_cookie_digest"=>nil, "action_dispatch.cookies_serializer"=>:hybrid, "action_dispatch.cookies_digest"=>nil, "action_dispatch.cookies_rotations"=>#, "action_dispatch.content_security_policy"=>nil, "action_dispatch.content_security_policy_report_only"=>false, "action_dispatch.content_security_policy_nonce_generator"=>nil, "action_dispatch.routes"=>#, "ROUTES_10940_SCRIPT_NAME"=>"", "ORIGINAL_FULLPATH"=>"/png/drum-kit", "ORIGINAL_SCRIPT_NAME"=>"", "rack.request.cookie_hash"=>{}, "action_dispatch.cookies"=>#, "HTTP_X_CLIENT_UID"=>nil, "action_dispatch.request_id"=>"8d4fe5c94772cd3109f944db578b96d9", "action_dispatch.remote_ip"=>#, "rack.request.query_string"=>"", "rack.request.query_hash"=>{}}, @filtered_parameters=nil, @filtered_env=nil, @filtered_path=nil, @protocol=nil, @port=nil, @method=nil, @request_method=nil, @remote_ip=nil, @original_fullpath=nil, @fullpath=nil, @ip=nil>, @cookies={}, @committed=false, @signed=#ActiveSupport::MessageEncryptor::NullSerializer}, @rotations=[]>>> action_dispatch.cookies_digest nil action_dispatch.cookies_rotations # action_dispatch.cookies_serializer :hybrid action_dispatch.encrypted_cookie_cipher nil action_dispatch.encrypted_cookie_salt "encrypted cookie" action_dispatch.encrypted_signed_cookie_salt "signed encrypted cookie" action_dispatch.http_auth_salt "http authentication" action_dispatch.key_generator # action_dispatch.logger # action_dispatch.parameter_filter [:password, :salt, :password, :salt] action_dispatch.redirect_filter [] action_dispatch.remote_ip #"GET", "REQUEST_PATH"=>"/png/drum-kit", "PATH_INFO"=>"/png/drum-kit", "REQUEST_URI"=>"/png/drum-kit", "SERVER_PROTOCOL"=>"HTTP/1.0", "HTTP_VERSION"=>"HTTP/1.0", "HTTP_HOST"=>"www.pixelsquid.com", "HTTP_CONNECTION"=>"close", "HTTP_X_REQUEST_ID"=>"8d4fe5c94772cd3109f944db578b96d9", "HTTP_X_REAL_IP"=>"47.241.63.203", "HTTP_X_FORWARDED_FOR"=>"47.241.63.203", "HTTP_X_FORWARDED_HOST"=>"www.pixelsquid.com", "HTTP_X_FORWARDED_PORT"=>"443", "HTTP_X_FORWARDED_PROTO"=>"https", "HTTP_X_FORWARDED_SCHEME"=>"https", "HTTP_X_SCHEME"=>"https", "HTTP_X_ORIGINAL_FORWARDED_FOR"=>"136.0.186.122, 47.241.63.203", "HTTP_USER_AGENT"=>"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729;Media Center PC 6.0; .NET4.0C; .NET4.0E)", "HTTP_X_AMZ_CF_ID"=>"GugjabgpkWpHUvq6DtoUkEJiJ8gfagJtjsxYtzPtdAaNVSCi97Ls9g==", "HTTP_VIA"=>"1.1 5ba1fc6b25fbcd91520a550358bd4bac.cloudfront.net (CloudFront)", "HTTP_ACCEPT"=>"*/*", "HTTP_REFERER"=>"http://www.baidu.com/", "HTTP_CLIENT_IP"=>"136.0.186.122", "HTTP_CLOUDFRONT_IS_MOBILE_VIEWER"=>"false", "HTTP_CLOUDFRONT_IS_TABLET_VIEWER"=>"false", "HTTP_CLOUDFRONT_IS_SMARTTV_VIEWER"=>"false", "HTTP_CLOUDFRONT_IS_DESKTOP_VIEWER"=>"true", "HTTP_CLOUDFRONT_VIEWER_COUNTRY"=>"SG", "HTTP_CLOUDFRONT_FORWARDED_PROTO"=>"https", "HTTP_CLOUDFRONT_VIEWER_ASN"=>"45102", "rack.url_scheme"=>"https", "SERVER_NAME"=>"www.pixelsquid.com", "SERVER_PORT"=>"443", "QUERY_STRING"=>"", "rack.input"=>#, "unicorn.socket"=>#, "rack.hijack"=>#, "rack.errors"=>#, "rack.multiprocess"=>true, "rack.multithread"=>false, "rack.run_once"=>false, "rack.version"=>[1, 2], "rack.hijack?"=>true, "SCRIPT_NAME"=>"", "SERVER_SOFTWARE"=>"Unicorn 6.1.0", "rack.logger"=>#, "rack.after_reply"=>[], "newrelic.transaction_started"=>true, "rack.tempfiles"=>[], "action_dispatch.parameter_filter"=>[:password, :salt, :password, :salt], "action_dispatch.redirect_filter"=>[], "action_dispatch.secret_token"=>nil, "action_dispatch.secret_key_base"=>"babd3712c0fb31c13668982898fb7df5b8515a67c9040b747c9dfdeef3b2a84ec5740430f9835210c32ff8d91909db9773eb4eadb49b5061dfb7e1970b8539c1", "action_dispatch.show_exceptions"=>true, "action_dispatch.show_detailed_exceptions"=>false, "action_dispatch.logger"=>#, "action_dispatch.backtrace_cleaner"=>#, "action_dispatch.key_generator"=>#, "action_dispatch.http_auth_salt"=>"http authentication", "action_dispatch.signed_cookie_salt"=>"signed cookie", "action_dispatch.encrypted_cookie_salt"=>"encrypted cookie", "action_dispatch.encrypted_signed_cookie_salt"=>"signed encrypted cookie", "action_dispatch.authenticated_encrypted_cookie_salt"=>"authenticated encrypted cookie", "action_dispatch.use_authenticated_cookie_encryption"=>false, "action_dispatch.encrypted_cookie_cipher"=>nil, "action_dispatch.signed_cookie_digest"=>nil, "action_dispatch.cookies_serializer"=>:hybrid, "action_dispatch.cookies_digest"=>nil, "action_dispatch.cookies_rotations"=>#, "action_dispatch.content_security_policy"=>nil, "action_dispatch.content_security_policy_report_only"=>false, "action_dispatch.content_security_policy_nonce_generator"=>nil, "action_dispatch.routes"=>#, "ROUTES_10940_SCRIPT_NAME"=>"", "ORIGINAL_FULLPATH"=>"/png/drum-kit", "ORIGINAL_SCRIPT_NAME"=>"", "rack.request.cookie_hash"=>{}, "action_dispatch.cookies"=>#>>, "HTTP_X_CLIENT_UID"=>nil, "action_dispatch.request_id"=>"8d4fe5c94772cd3109f944db578b96d9", "action_dispatch.remote_ip"=>#, "rack.request.query_string"=>"", "rack.request.query_hash"=>{}}, @filtered_parameters=nil, @filtered_env=nil, @filtered_path=nil, @protocol=nil, @port=nil, @method=nil, @request_method=nil, @remote_ip=nil, @original_fullpath=nil, @fullpath=nil, @ip=nil>, @check_ip=true, @proxies=[#, #, #, #, #, #]> action_dispatch.request_id "8d4fe5c94772cd3109f944db578b96d9" action_dispatch.routes # action_dispatch.secret_key_base "babd3712c0fb31c13668982898fb7df5b8515a67c9040b747c9dfdeef3b2a84ec5740430f9835210c32ff8d91909db9773eb4eadb49b5061dfb7e1970b8539c1" action_dispatch.secret_token nil action_dispatch.show_detailed_exceptions false action_dispatch.show_exceptions true action_dispatch.signed_cookie_digest nil action_dispatch.signed_cookie_salt "signed cookie" action_dispatch.use_authenticated_cookie_encryption false newrelic.transaction_started true rack.after_reply [] rack.errors # rack.hijack # rack.hijack? true rack.input # rack.logger # rack.multiprocess true rack.multithread false rack.request.cookie_hash {} rack.request.query_hash {} rack.request.query_string "" rack.run_once false rack.tempfiles [] rack.url_scheme "https" rack.version [1, 2] unicorn.socket #

You're seeing this error because you use Rack::ShowExceptions.



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3